
package GUI;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

/**
 * se eliminan los JLabel como atributos para liberar memoria
 * @author dianacha
 */
public class VentanaInicio extends JFrame implements ActionListener{
    
    private JTextField tfNickUsuario;
    private JPasswordField tfPassword;
    private JButton bIniciarAplicacion;
            
    public VentanaInicio(){
        setTitle("Login Cocos");
        //Image icono = Toolkit.getDefaultToolkit().getImage("images/logo25x25.jpg");
        //setIconImage(icono);
        inicializarComponentes();
        organizarComponentes();
        setLocationRelativeTo(null);
        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
        setSize(422, 288); //* H, V
        setResizable(false);
        setVisible(true);
    }
    
    private void inicializarComponentes() {        
        tfNickUsuario   = new JTextField(10);
        tfPassword      = new JPasswordField();
        
        bIniciarAplicacion = new JButton("Sign In");
        bIniciarAplicacion.addActionListener(this);
    }
    
    private void organizarComponentes(){
        JPanel pDatosUsuario = new JPanel(new GridLayout(2,2,0,2));
        pDatosUsuario.add(new JLabel("User Name:"));
        pDatosUsuario.add(tfNickUsuario);
        pDatosUsuario.add(new JLabel("Password:"));
        pDatosUsuario.add(tfPassword);
        pDatosUsuario.setBorder(BorderFactory.createEmptyBorder(0,0,5,0));//n,w,s,e
        pDatosUsuario.setBackground(new Color(0,0,0,0));
        
        JPanel pBotones = new JPanel();
        pBotones.add(bIniciarAplicacion);
        pBotones.setBackground(new Color(0,0,0,0));
        
        JPanelConFondo pGeneral = new JPanelConFondo( new ImageIcon(getClass().getResource("/GUI/images/main-background-422x288.jpg" )));
        pGeneral.add(pDatosUsuario, BorderLayout.CENTER);
        pGeneral.add(pBotones, BorderLayout.SOUTH);
        pGeneral.setBorder(BorderFactory.createEmptyBorder(65,65,65,65));//n,w,s,e
	
        setLayout(new BorderLayout()); // eC, eF
        add(pGeneral, BorderLayout.CENTER);
    }
    
    private void limpiarCampos(){
        tfNickUsuario.setText("");
        tfPassword.setText("");
    }
    
    private void iniciarApp(){
        boolean existe;
        
        existe = true;
        //existe = servidor.consultarEnBd(loggin, pass)
               
        if (existe){
             try{
                //si está en bd : ArrayList-String- servidor.traerDatosPpales()
                String tipoUsuario = "admin";
                String username = tfNickUsuario.getText();
                
                limpiarCampos();

                switch(tipoUsuario){
                    case "cajero":
                        VentanaCajero cajero = new VentanaCajero(username);
                        break;
                    case "admin" :
                        VentanaAdministrador admin = new VentanaAdministrador(username);
                        break;
                }
             }
             catch(Exception e){
                 
             }
             finally{
                 dispose();
             }
        }
        else {
            //si no está en bd :
            JOptionPane.showMessageDialog(null, "El usuario no se encuentra en la bd");
            limpiarCampos();
        } 
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource()==bIniciarAplicacion){
            iniciarApp();
        }
    }
}
